#include<bits/stdc++.h>
using namespace std;
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
const int N=2e5+10;
#define INF 0x3f3f3f3f;
typedef long long int ll;
#define close(); std::ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);
//----------------------------------------------------------------------------//
ll n,t,x;
void solve()
{
	cin>>n>>x>>t;//总人数,每x分钟开一场,每场比赛持续t分钟

	if(t<x) cout<<0<<'\n';
	else
	{
		if(t/x<=n-1) cout<<(t/x)*n-((1+t/x)*(t/x)/2)<<'\n';//先全部加上再反堆从1开始的等差数列到t/x,  1+t/x是应为要减到0
		else cout<<((n-1)*n)/2<<'\n';//t/x>=n 直接全部包含,直接等差数列了,每个选手包含n-1-i这里i从0开始
		//本质是n-1+0
	}

	
}

int main()
{
	close();
	int T; cin>>T;
	while (T--) solve();
	return 0;
}

//t<x 则选手时间无重叠,不满意度为0
//第i名选手在(i-1)*x开始 i从1开始
//第i名选手结束时间 (i-1)*x+t


//前面的选手有交集的是t/x 相当于在t这段范围内,有多少个x,x是某个选手的开头,但在这个式子中是当结尾(这点要想好)